home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / dev / misc / BST_SystemDocs.lha / BeastV1 / Docs / ROBO_Docs / BeastLibrary.doc next >
Encoding:
Text File  |  1996-04-19  |  21.3 KB  |  980 lines

  1. TABLE OF CONTENTS
  2. 0001 BST_System/BeastLibrary
  3. 0002 BeastLibrary/BST_AddClass
  4. 0003 BeastLibrary/BST_ApplyTagChanges
  5. 0004 BeastLibrary/BST_CloneTagItems
  6. 0005 BeastLibrary/BST_FillAttrTagList
  7. 0006 BeastLibrary/BST_FindTagItem
  8. 0007 BeastLibrary/BST_FreeClass
  9. 0008 BeastLibrary/BST_FreeTagItems
  10. 0009 BeastLibrary/BST_MakeClass
  11. 0010 BeastLibrary/BST_MakeSubClass
  12. 0011 BeastLibrary/BST_NextTagItem
  13. 0012 BeastLibrary/BST_RemoveClass
  14. 0013 BeastLibrary/CLSS_AddMethod
  15. 0014 BeastLibrary/CLSS_DisposeMethod
  16. 0015 BeastLibrary/CLSS_FindMethod
  17. 0016 BeastLibrary/OBJ_CreateConnection
  18. 0017 BeastLibrary/OBJ_DestroyObject
  19. 0018 BeastLibrary/OBJ_DisposeObject
  20. 0019 BeastLibrary/OBJ_DoMethod
  21. 0020 BeastLibrary/OBJ_FromInput
  22. 0021 BeastLibrary/OBJ_MethodToChildren
  23. 0022 BeastLibrary/OBJ_MethodToParent
  24. 0023 BeastLibrary/OBJ_NewObject
  25. 0024 BeastLibrary/OBJ_RemoveConnection
  26. 0025 BeastLibrary/OBJ_ToOutput
  27. 0026 BeastLibrary/mth_AllocMem_BeastLibrary
  28. 0027 BeastLibrary/mth_ForEach_BeastLibrary
  29. 0028 BeastLibrary/mth_FreeMem_BeastLibrary
  30. 0029 BeastLibrary/mth_LockMem_BeastLibrary
  31. 0030 BeastLibrary/mth_UnlockMem_BeastLibrary
  32. BST_System/BeastLibrary
  33.  
  34. NAME
  35.       BeastLibrary -- Library for BEAST. (V1 Bravo)
  36.  
  37.  
  38. COPYRIGHT
  39.       Maverick Software Development
  40.  
  41.  
  42. FUNCTION
  43.       The BEAST engine.
  44.  
  45.         The method names are defined as follows;
  46.         mth_[method name]_[class name]
  47.  
  48.         The following tokens are used to explain the methods.
  49.  
  50.         af[..] = Attribute flags;
  51.             R    = Required, must be supplied.
  52.             P    = When not available, the method will try retrieve it from it's parents.
  53.             S(n) = This tag is used/filled in by a superclass (n) of this class.
  54.             E    = When supplied the object will act more efficient.
  55.             D(n) = Default value when it's not supplied and it cannot be retrieved
  56.                    from something else.
  57.             A    = Always supplied by the method.
  58.             F    = This tag is filled in by the method.
  59.             I    = BTF_Ignore flag is set when processed.
  60.             T(n) = Extra information about the typeof the tag.
  61.  
  62.  
  63.  
  64. AUTHOR
  65.       Jacco van Weert
  66.  
  67.  
  68. CREATION DATE
  69.       23-Apr-95
  70.  
  71.  
  72. MODIFICATION HISTORY
  73.       27-Mar-96:    First release, V1 Alpha.
  74.       16-Apr-96:    BST_FillAttrTagList, V1 Bravo.
  75.             OBM_ALLOCMEM, OBM_FREEMEM, OBM_LOCKMEM, OBM_UNLOCKMEM
  76.             OBM_FOREACH Methods V1 Bravo.
  77.             Library version 2.
  78.  
  79.  
  80. NOTES
  81.  
  82.  
  83. BeastLibrary/BST_AddClass
  84.  
  85. NAME
  86.       BST_AddClass -- Add a Beast class to the class list. (V1 Alpha)
  87.  
  88.  
  89. SYNOPSIS
  90.       AddClass( Class )
  91.             A0
  92.       void BST_AddClass( struct BST_Class * );
  93.  
  94.  
  95. FUNCTION
  96.       Add the Beast class to the Beast system.
  97.  
  98.  
  99. INPUTS
  100.       Class - Pointer to the class.
  101.  
  102.  
  103. SEE ALSO
  104.       BST_RemoveClass, BST_MakeClass
  105.  
  106.  
  107. BeastLibrary/BST_ApplyTagChanges
  108.  
  109. NAME
  110.       BST_ApplyTagChanges -- (V1 Alpha)
  111.  
  112.  
  113. SYNOPSIS
  114.       BST_ApplyTagChanges( list, changeList )
  115.                      A0    A1
  116.  
  117.  
  118. FUNCTION
  119.       <Same as in the utility.library>
  120.  
  121.  
  122. NOTES
  123.       This routine is subject to change
  124.  
  125.  
  126. BeastLibrary/BST_CloneTagItems
  127.  
  128. NAME
  129.       BST_CloneTagItems -- (V1 Alpha)
  130.  
  131.  
  132. SYNOPSIS
  133.       clone = BST_CloneTagItems( original )
  134.       D0                 A0
  135.  
  136.  
  137. FUNCTION
  138.       <Same as in the utility.library>
  139.  
  140.  
  141. NOTES
  142.       This routine is subject to change
  143.  
  144.  
  145. BeastLibrary/BST_FillAttrTagList
  146.  
  147. NAME
  148.       BST_FillAttrTagList -- (V1 Bravo)
  149.  
  150.  
  151. SYNOPSIS
  152.       Result = BST_FillAttrTagList( TagList, SupportedTags, Object, MethodFlags )
  153.       D0                A0     A1        A2,    D3
  154.  
  155.  
  156. FUNCTION
  157.       This function can be used in assembler programs to process a TagList.
  158.       The 'functions' are called with;
  159.         D4 = Number of this filled item
  160.         A0 = Pointer to { TAG, xxxx_data }
  161.         A2 = Pointer to the object
  162.         A3 = Pointer to the start of the TagList
  163.         A5 = Pointer to the Instance
  164.  
  165.  
  166. INPUTS
  167.       TagList     - Pointer to the to be processed TagList
  168.       SupportedTags     - Pointer to a Table with all the supported tags
  169.                ends with TAG_DONE.
  170.  
  171.                Example:
  172.                 dc.l    BTA_Size,  addr_GetSize
  173.                 dc.l    BTA_Title, addr_GetTitle
  174.                 dc.l    TAG_DONE
  175.       Object     - Pointer to the object from which the instance is used.
  176.       MethodFlags     - The MethodFlags, these are chanced when there is a
  177.                BTA_NumberOf tag, and it is neccesary.
  178.  
  179.  
  180. RESULT
  181.       Result - New MethodFlags
  182.  
  183.  
  184. SEE ALSO
  185.  
  186.  
  187. BeastLibrary/BST_FindTagItem
  188.  
  189. NAME
  190.       BST_FindTagItem -- (V1 Alpha)
  191.  
  192.  
  193. SYNOPSIS
  194.       Result = BST_FindTagItem( tagValue, tagList )
  195.       D0,A0                D0          A0
  196.       struct TagItem *BST_FindTagItem( ULONG, struct TagItem * );
  197.  
  198.  
  199. FUNCTION
  200.       Same functionallity as the utility.library equivalent, added are
  201.       special handling functions for the BEAST tags.
  202.  
  203.  
  204. BeastLibrary/BST_FreeClass
  205.  
  206. NAME
  207.       BST_FreeClass -- Free a Beast class. (V1 Alpha)
  208.  
  209.  
  210. SYNOPSIS
  211.       BST_FreeClass( Class )
  212.                A0
  213.       void BST_FreeClass( struct BST_Class );
  214.  
  215.  
  216. FUNCTION
  217.       Free the Beast class from the memory. Also deallocate all class related
  218.       stuff. Such as the methods lists.
  219.  
  220.  
  221. INPUTS
  222.       Class - Pointer to the class.
  223.  
  224.  
  225. NOTES
  226.       Before this routine BST_RemoveClass must be called.
  227.  
  228.  
  229. BUGS
  230.       No check if the Class is still in use.
  231.  
  232.  
  233. SEE ALSO
  234.       BST_RemoveClass, BST_MakeClass
  235.  
  236.  
  237. BeastLibrary/BST_FreeTagItems
  238.  
  239. NAME
  240.       BST_FreeTagItems -- (V1 Alpha)
  241.  
  242.  
  243. SYNOPSIS
  244.       BST_FreeTagItems( taglist )
  245.                   A0
  246.  
  247.  
  248. FUNCTION
  249.       <Same as in the utility.library>
  250.  
  251.  
  252. NOTES
  253.       This routine is subject to change
  254.  
  255.  
  256. BeastLibrary/BST_MakeClass
  257.  
  258. NAME
  259.       BST_MakeClass -- Make a Beast class. (V1 Alpha)
  260.  
  261.  
  262. SYNOPSIS
  263.       Result = BST_MakeClass( ClassID, InstanceSize )
  264.       D0              A0       D0
  265.       struct BST_Class *BST_MakeClass( char *, ULONG );
  266.  
  267.  
  268. FUNCTION
  269.       Defines a new public class, BST_AddClass must be called to add
  270.       the class to the BEAST system.
  271.  
  272.  
  273. INPUTS
  274.       ClassID      - Class ID, pointer to the public-name.
  275.              Please choose this name carefully, otherwise a
  276.              conflict may occur.
  277.              Beast classes always are starting with a 'B'.
  278.              BST_,  BVS_, BFS_, ..etc..
  279.  
  280.       InstanceSize - The Instance size in bytes.
  281.  
  282.  
  283. RESULT
  284.       Result - The created class
  285.  
  286.  
  287. SEE ALSO
  288.       BST_FreeClass, BST_AddClass
  289.  
  290.  
  291. BeastLibrary/BST_MakeSubClass
  292.  
  293. NAME
  294.       BST_MakeSubClass -- Make a Beast subclass. (V1 Alpha)
  295.  
  296.  
  297. SYNOPSIS
  298.       Result = BST_MakeSubClass( ClassID, InstanceSize, SuperClass )
  299.       D0                 A0          D0        A1
  300.  
  301.  
  302. FUNCTION
  303.       The same function as BST_MakeClass, only now this class is a subclass
  304.       of 'SuperClass'. This superclass _must_ be added to the system, because
  305.       at least 1 object is created of this class.
  306.  
  307.  
  308. INPUTS
  309.       ClassID      - Class ID, pointer to public-name.
  310.       InstanceSize - The private class datasize in bytes.
  311.       SuperClass   - The name of the SuperClass.
  312.  
  313.  
  314. RESULT
  315.       Result - The created sub class
  316.  
  317.  
  318. SEE ALSO
  319.       BST_FreeClass, BST_AddClass, BST_MakeClass
  320.  
  321.  
  322. BeastLibrary/BST_NextTagItem
  323.  
  324. NAME
  325.       BST_NextTagItem -- (V1 Alpha)
  326.  
  327.  
  328. SYNOPSIS
  329.       Result = BST_NextTagItem( tagList )
  330.       D0,A0                A0
  331.       struct TagItem *BST_NextTagItem( struct TagItem * );
  332.  
  333.  
  334. FUNCTION
  335.       Similar function as the one in the utility.library, only this
  336.       takes care about some BEAST tags.
  337.  
  338.  
  339. RESULT
  340.       Result - Pointer to the new position.
  341.            =NULL when end of TagList
  342.  
  343.  
  344. BeastLibrary/BST_RemoveClass
  345.  
  346. NAME
  347.       BST_RemoveClass -- Remove a Beast class from the class list. (V1 Alpha)
  348.  
  349.  
  350. SYNOPSIS
  351.       BST_RemoveClass( Class )
  352.                A0
  353.       void BST_RemoveClass( struct BST_Class * );
  354.  
  355.  
  356. FUNCTION
  357.       Unlink the Beast class from the list.
  358.  
  359.  
  360. INPUTS
  361.       Class - Pointer to the class.
  362.  
  363.  
  364. SEE ALSO
  365.       BST_AddClass, BST_FreeClass
  366.  
  367.  
  368. BeastLibrary/CLSS_AddMethod
  369.  
  370. NAME
  371.       CLSS_AddMethod -- Add a Method to a class. (V1 Alpha)
  372.  
  373.  
  374. SYNOPSIS
  375.       Result = CLSS_AddMethod( Class, MethodStart, Method_ID )
  376.       D0                A0     A1           D0
  377.       struct BST_Class CLSS_AddMethod( struct BST_Class *, ULONG *, BST_Method );
  378.  
  379.  
  380. FUNCTION
  381.       Add a method to a class, every method may have several method-routines.
  382.       The Beast system has a large number of pre-defined method ID's.
  383.       There are a number of free slots for local methods. Please consider
  384.       very carefully when using local methods ID. Those are not supported
  385.       among other classes. Also _NEVER_ use method delegation (MTHF_DOPARENTS,
  386.       MTHF_DOCHILDREN..etc..) when using local methods. In the BEAST OO system
  387.       objects are _never_ sure who parents or children are, even if you add them
  388.       yourself.
  389.       Free slots for local method ID's:
  390.         OBM_local0    =    0x00000040 - 0x0000007F
  391.         OBM_local1    =    0x00000100 - 0x000007FF
  392.         OBM_local2    =    0x00004000 - 0x00004FFF
  393.         OBM_local3    =    0x00100000 - 0x001FFFFF
  394.  
  395.       The method ID's with the lowest number have the highest priority. In
  396.       V1 Alpha the priority is not yet implemented, but it will be in the future.
  397.  
  398.  
  399. INPUTS
  400.       Class       - Pointer to the class.
  401.       MethodStart - The start of the method routine.
  402.       Method_ID   - The Method_ID number.
  403.  
  404.  
  405. RESULT
  406.       Result - =NULL when Error.
  407.            <>NULL Class.
  408.  
  409.  
  410. SEE ALSO
  411.       CLSS_DisposeMethod
  412.  
  413.  
  414. BeastLibrary/CLSS_DisposeMethod
  415.  
  416. NAME
  417.       CLSS_DisposeMethod -- Dispose a Method from a class. (V1 Alpha)
  418.  
  419.  
  420. SYNOPSIS
  421.       CLSS_DisposeMethod( Class, MethodStart, Method_ID )
  422.                      A0     A1          D0
  423.       void CLSS_DisposeMethod( struct BST_Class *, ULONG *, BST_Method );
  424.  
  425.  
  426. FUNCTION
  427.       Remove the method from the class.
  428.  
  429.  
  430. INPUTS
  431.       Class          - Pointer to the class.
  432.       MethodStart - Start of the method routine.
  433.       Method_ID   - Method ID number
  434.  
  435.  
  436. SEE ALSO
  437.       CLSS_AddMethod
  438.  
  439.  
  440. BeastLibrary/CLSS_FindMethod
  441.  
  442. NAME
  443.       CLSS_FindMethod -- Find a Method in a class. (V1 Alpha)
  444.  
  445.  
  446. SYNOPSIS
  447.       Result = CLSS_FindMethod( Class, Method_ID )
  448.       D0,A0                 A0     D0
  449.       struct class_MethodList *CLSS_FindMethod( struct BST_Class *, BST_Method );
  450.  
  451.  
  452. FUNCTION
  453.       Search for a certain method ID.
  454.  
  455.  
  456. INPUTS
  457.       Class        - Pointer to the class.
  458.       Method_ID - Method ID number.
  459.  
  460.  
  461. RESULT
  462.       Result - Pointer to found CLSS_MethodList or NULL when the method
  463.            is not found.
  464.  
  465.  
  466. BeastLibrary/OBJ_CreateConnection
  467.  
  468. NAME
  469.       OBJ_CreateConnection -- Create a connection between two methods. (V1 Alpha)
  470.  
  471.  
  472. SYNOPSIS
  473.       Result = OBJ_CreateConnection( FromObject, ToObject, FromMethod, ToMethod )
  474.       D0                 A0         A1        D0       D1
  475.       struct obj_OutputLink *OBJ_CreateConnection( struct BST_Object *, struct BST_Object *, BST_Method, BST_Method );
  476.  
  477.  
  478. FUNCTION
  479.       Create a connection between two objects. Every Method can be connected to any
  480.       other method. Connections between objects running at the same task will be
  481.       a direct connection. When connecting to object of different task the routine
  482.       will insert an intermediair (not implemented in V1 Alpha). The same when connecting
  483.       between two objects at two different computer systems.
  484.       A connection can have multiple inputs and outputs. But a things must be take into
  485.       consideration. When a 'FromMethod' is connected to several other methods the
  486.       TagList (which is the data) is shared among the connected objects, which means
  487.       that if the first object changes something in the TagList, the others will also
  488.       see it.
  489.  
  490.  
  491. INPUTS
  492.       FromObject - Pointer to the 'From' object.
  493.       ToObject   - Pointer to the 'To' object
  494.       FromMethod - The Method ID number of the FromObject.
  495.       ToMethod   - The Method ID number of the ToObject.
  496.  
  497.  
  498. RESULT
  499.       Result - 0 = An error has occured. Also when FromObject or ToObject
  500.                is zero. Otherwise, pointer to the obj_OutputLink.
  501.  
  502.       A double linked connection is created, an OIL_Connection
  503.       and an OOL_Connection structure.
  504.  
  505.  
  506. SEE ALSO
  507.       OBJ_RemoveConnection
  508.  
  509.  
  510. BeastLibrary/OBJ_DestroyObject
  511.  
  512. NAME
  513.       OBJ_DestroyObject -- Destroy an object. (V1 Alpha)
  514.  
  515.  
  516. SYNOPSIS
  517.       OBJ_DestroyObject( Object, MethodFlags )
  518.                     A0         D3
  519.       struct BST_Object *OBJ_DestroyObject( struct BST_Object *, BST_MethodFlags );
  520.  
  521.  
  522. FUNCTION
  523.       This function combines a OBM_DISPOSE method with a OBJ_DisposeObject
  524.       call.
  525.  
  526.  
  527. INPUTS
  528.       Object      - Pointer to the object to be destroyed.
  529.       MethodFlags - MTHF_DOCHILDREN will be added by the function!!
  530.  
  531.  
  532. SEE ALSO
  533.       OBJ_DoMethod, OBJ_DisposeObject
  534.  
  535.  
  536. BeastLibrary/OBJ_DisposeObject
  537.  
  538. NAME
  539.       OBJ_DisposeObject -- Dispose an object. (V1 Alpha)
  540.  
  541.  
  542. SYNOPSIS
  543.       OBJ_DisposeObject( Object )
  544.                     A0
  545.       void OBJ_DisposeObject( struct BST_Object * );
  546.  
  547.  
  548. FUNCTION
  549.       Dispose this object AND all it's children.
  550.  
  551.  
  552. INPUTS
  553.       Object - The object to be disposed. May be NULL.
  554.  
  555.  
  556. RESULT
  557.       This object AND the children objects are disposed.
  558.  
  559.  
  560. NOTES
  561.       This function will NOT perform an OBM_DISPOSE method.
  562.  
  563.  
  564. SEE ALSO
  565.       OBJ_NewObject, OBJ_DestroyObject
  566.  
  567.  
  568. BeastLibrary/OBJ_DoMethod
  569.  
  570. NAME
  571.       OBJ_DoMethod -- Perform a method on a object. (V1 Alpha)
  572.  
  573.  
  574. SYNOPSIS
  575.       Result = OBJ_DoMethod( Object, Method_ID, TagList, MethodFlags )
  576.                  A0     D0        A1         D3
  577.       BST_MethodFlags OBJ_DoMethod( struct BST_Object *, BST_Method, struct TagItem *, BST_MethodFlags );
  578.  
  579.  
  580. FUNCTION
  581.       Trigger a method on a certain object.
  582.  
  583.  
  584. INPUTS
  585.       Object      - Pointer to the object (may NULL).
  586.       Method_ID   - Method ID number.
  587.       TagList     - Pointer to the TagList used by the Method routine.
  588.       MethodFlags - Special method flags;
  589.                 See the Beast:Docs/Beast_OO/Methods.doc
  590.  
  591.  
  592. RESULT
  593.       Result = The new method flags
  594.  
  595.             Method call with the following registers set;
  596.                 D2 = Method_ID
  597.                 D3 = MethodFlags
  598.                 A2 = Object
  599.                 A3 = TagList
  600.  
  601.       As a result the method must deliver the new MethodFlags in d0.
  602.       Besides the discussed MethodFlags (INPUTS) there are some more;
  603.         See the Beast:Docs/Beast_OO/Methods.doc
  604.  
  605.  
  606. SEE ALSO
  607.       OBJ_MethodToParent, OBJ_MethodToChildren
  608.  
  609.  
  610. BeastLibrary/OBJ_FromInput
  611.  
  612. NAME
  613.       OBJ_FromInput -- Trigger methods connections to an input. (V1 Alpha)
  614.  
  615.  
  616. SYNOPSIS
  617.       OBJ_FromInput( Object, InputMethod, MethodFlags, TagList )
  618.              A0,     D0          D3       A1
  619.       BST_MethodFlags OBJ_FromInput( struct BST_Object *, BST_Method, BST_MethodFlags, struct TagItem * );
  620.  
  621.  
  622. FUNCTION
  623.       Request input from the method 'InputMethod', this will trigger ( if
  624.       connected ) a method at the object connected to the 'InputMethod'.
  625.  
  626.  
  627. INPUTS
  628.       Object       - Pointer to the object.
  629.       InputMethod  - The input method number.
  630.       MethodFlags  - The Method flags, see OBJ_DoMethod.
  631.       TagList      - The TagList put to the input/output-methods of the
  632.              connection.
  633.  
  634.  
  635. SEE ALSO
  636.       OBJ_ToOutput, OBJ_CreateConnection
  637.  
  638.  
  639. BeastLibrary/OBJ_MethodToChildren
  640.  
  641. NAME
  642.       OBJ_MethodToChildren -- Delegate the method to the children. (V1 Alpha)
  643.  
  644.  
  645. SYNOPSIS
  646.       Result = OBJ_MethodToChildren( Object, Method_ID, TagList, MethodFlags )
  647.                       A0     D0        A1         D3
  648.  
  649.  
  650. FUNCTION
  651.       See DoMethod for full description. 
  652.       This function pass the method to the children. This is used in a method
  653.       definition when the MTHF_PASSTOCHILD flag is set.
  654.  
  655.  
  656. INPUTS
  657.       Object      - Pointer to the object (may NULL).
  658.       Method_ID   - Method ID number.
  659.       TagList     - Pointer to the TagList used by the Method routine.
  660.       MethodFlags - Special method flags;
  661.  
  662.  
  663. RESULT
  664.       Result = The new method flags
  665.  
  666.       Method call with the following registers set;
  667.  
  668.         D2 = Method_ID
  669.         D3 = MethodFlags
  670.         A2 = Object
  671.         A3 = TagList
  672.  
  673.       As a result the method must deliver the new MethodFlags in d0.
  674.  
  675.  
  676. NOTES
  677.  
  678.  
  679. SEE ALSO
  680.       OBJ_DoMethod
  681.  
  682.  
  683. BeastLibrary/OBJ_MethodToParent
  684.  
  685. NAME
  686.       OBJ_MethodToParent -- Delegate the method to the parent. (V1 Alpha)
  687.  
  688.  
  689. SYNOPSIS
  690.       Result = OBJ_MethodToParent( Object, Method_ID, TagList, MethodFlags )
  691.                        A0      D0      A1       D3
  692.       BST_MethodFlags OBJ_MethodToParent( struct BST_Object *, BST_Method, struct TagItem *, BST_MethodFlags );
  693.  
  694.  
  695. FUNCTION
  696.       See DoMethod for full description. 
  697.       This function pass the method to the parent. In this way the method won't
  698.       be triggered at the caller object. Remember to set the MTHF_DOPARENTS flags
  699.       the method should be delegated to other parents as well.
  700.  
  701.  
  702. INPUTS
  703.       Object      - Pointer to the object (may NULL).
  704.       Method_ID   - Method ID number.
  705.       TagList     - Pointer to the TagList used by the Method routine.
  706.       MethodFlags - Special method flags;
  707.  
  708.  
  709. RESULT
  710.       Result = The new method flags
  711.  
  712.       Method call with the following registers set;
  713.  
  714.         D2 = Method_ID
  715.         D3 = MethodFlags
  716.         A2 = Object
  717.         A3 = TagList
  718.  
  719.       As a result the method must deliver the new MethodFlags in d0.
  720.  
  721.  
  722. SEE ALSO
  723.       OBJ_DoMethod
  724.  
  725.  
  726. BeastLibrary/OBJ_NewObject
  727.  
  728. NAME
  729.       OBJ_NewObject -- Create a new object. (V1 Alpha)
  730.  
  731.  
  732. SYNOPSIS
  733.       Result = OBJ_NewObject( Class, Class_ID, Parent )
  734.       D0               A0     A1       D0
  735.       struct BST_Object *OBJ_NewObject( struct BST_Class *, char *, struct BST_Object * );
  736.  
  737.  
  738. FUNCTION
  739.       Create a new object. The object is added 'under' the Parent. In version
  740.       V1 Alpha multiple parents are not supported. If the Parent is null the
  741.       object is added under the Beast root, or when the Beast FileSystem is
  742.       available it's added under the UserClass.
  743.       The object instance is allocated with MEMF_CLEAR, so the instance is cleared.
  744.  
  745.  
  746. INPUTS
  747.       Class    - Pointer to an already known class (private class)
  748.              NULL if not used. (normally NULL).
  749.       Class_ID - Pointer to the name of the public class.
  750.       Parent   - Pointer to the parent object or NULL.
  751.  
  752.  
  753. RESULT
  754.       Result - Pointer to created object. NULL if the object could
  755.            not be added.
  756.  
  757.  
  758. SEE ALSO
  759.       OBJ_DisposeObject
  760.  
  761.  
  762. BeastLibrary/OBJ_RemoveConnection
  763.  
  764. NAME
  765.       OBJ_RemoveConnection -- (V1 Alpha)
  766.  
  767.  
  768. SYNOPSIS
  769.       OBJ_RemoveConnection( OxL_Connection )
  770.                 A1
  771.       void OBJ_RemoveConnection( struct obj_OutputLink * );
  772.  
  773.  
  774. FUNCTION
  775.       Remove a created OIL_Connection or OOL_Connection.
  776.  
  777.  
  778. INPUTS
  779.       OxL_Connection - Pointer to an OIL/OOL_Connection.
  780.  
  781.  
  782. RESULT
  783.       The OIL_Connection and OOL_Connection structures are destroyed.
  784.  
  785.  
  786. SEE ALSO
  787.       OBJ_CreateConnection
  788.  
  789.  
  790. BeastLibrary/OBJ_ToOutput
  791.  
  792. NAME
  793.       OBJ_ToOutput -- Trigger methods connections to an output. (V1 Alpha)
  794.  
  795.  
  796. SYNOPSIS
  797.       Result = OBJ_ToOutput( Object, TagList, OutputMethod, MethodFlags )
  798.                  A0     A1      D0            D3
  799.       BST_MethodFlags OBJ_ToOutput( struct BST_Object *, struct TagItem *, BST_Method, BST_MethodFlags );
  800.  
  801.  
  802. FUNCTION
  803.       'Output' the TagList (A1) to the connected input, the used output
  804.       is the OutputMethod (D0). The object is triggered which is connected
  805.       to 'Object' at MethodID 'OutputMethod'.
  806.  
  807.  
  808. INPUTS
  809.       Object       - Pointer to the object.
  810.       TagList      - The TagList put to the input/output-method of the
  811.              connection.
  812.       OutputMethod - The output method ID.
  813.       MethodFlags  - The Method flags, see OBJ_DoMethod.
  814.  
  815.  
  816. RESULT
  817.       Result = The new methodflags.
  818.  
  819.  
  820. SEE ALSO
  821.       OBJ_FromInput, OBJ_CreateConnection, OBJ_DoMethod
  822.  
  823.  
  824. BeastLibrary/mth_AllocMem_BeastLibrary
  825.  
  826. NAME
  827.       mth_AllocMem - Allocate a memory block. (V1 Bravo)
  828.  
  829.  
  830. FUNCTION
  831.       Use this function to allocate a memory block.
  832.  
  833.  
  834. INPUTS
  835.       TagList -
  836.         BTA_MemSize    - af[D(0)]
  837.             The size of the to be allocated memory in bytes.
  838.  
  839.         BTA_MemFlags    - af[D(MEMF_PUBLIC)]
  840.             The memory flags of the memory.
  841.             The same as the one used by the exec.library AllocMem.
  842.             Extra flags;
  843.                 MEMF_MOVEABLE_DISK
  844.                     The memory block may be swapped to
  845.                     slow memory (e.g. disk) when it's
  846.                     not locked.
  847.                 MEMF_MOVEABLE_MEMORY
  848.                     The memory block may move around the
  849.                     systems memory when it's not locked.
  850.                 MEMF_DISCARABLE
  851.                     The memory may be discard when it is
  852.                     not locked. So the whole memory will
  853.                     be released!.
  854.             These extra flags will be used by the BST_MemoryClass
  855.             and other memory handling classes.
  856.  
  857.         BTA_MemHandle    - af[RF]
  858.             On return this tag will hold the pointer to the
  859.             MemoryHandle. This is _not_ the pointer to the memory
  860.             block. One must OBM_LOCKMEM the handle to obtain the
  861.             actual pointer to the memory block.
  862.  
  863.  
  864. SEE ALSO
  865.       mth_FreeMem_BeastLibrary
  866.  
  867.  
  868. BeastLibrary/mth_ForEach_BeastLibrary
  869.  
  870. NAME
  871.       mth_ForEach - (V1 Bravo)
  872.  
  873.  
  874. FUNCTION
  875.       Trigger the 'BTA_Method' of 'BTA_MainObject' for each of the
  876.       'BTA_Object1's children objects. The supplied TagList is also
  877.       send to the 'BTA_Method'. Every time 'BTA_Object2' is filled in
  878.       with the current object. Only(!) the children of BTA_Object1 are
  879.       processed, not the childrens children.
  880.       If the OBM_FOREACH must work recursive throughout the whole
  881.       children tree, the 'BTA_Method' must do an OBM_FOREACH method again
  882.       and must replace BTA_Object1 with the value of BTA_Object2.
  883.       The BST_SearchClass has an example how to do this.
  884.  
  885.  
  886. INPUTS
  887.       TagList -
  888.         BTA_MainObject    - af[R]
  889.           Method 'BTA_Method' is this object is always triggered for
  890.           object. Mostly this is the object from which the OBM_FOREACH
  891.           method is triggered.
  892.         BTA_Method    - af[R]
  893.           This method is triggered on 'BTA_MainObject'.
  894.         BTA_Object1    - af[R]
  895.           The start point of the OBM_FOREACH method. The children
  896.           objects of _this_ object are processed.
  897.         BTA_Object2    - af[FR]
  898.           The tag is always filled with the current child object.
  899.           With this tag the called method can find out which object
  900.           the OBM_FOREACH has processed.
  901.  
  902.  
  903. SEE ALSO
  904.       mth_GetEach_BeastLibrary
  905.  
  906.  
  907.  
  908. BeastLibrary/mth_FreeMem_BeastLibrary
  909.  
  910. NAME
  911.       mth_FreeMem - Free a memory block. (V1 Bravo)
  912.  
  913.  
  914. FUNCTION
  915.       Use this function to free a memory block, allocate by the
  916.       OBM_ALLOCMEM method.
  917.  
  918.  
  919. INPUTS
  920.       TagList -
  921.         BTA_MemSize    - af[R]
  922.             The size of the memory in bytes.
  923.  
  924.         BTA_MemHandle    - af[R]
  925.             The memory handle
  926.  
  927.  
  928. SEE ALSO
  929.       mth_AllocMem_BeastLibrary, mth_LockMem_BeastLibrary,
  930.       mth_UnlockMem_BeastLibrary
  931.  
  932.  
  933.  
  934. BeastLibrary/mth_LockMem_BeastLibrary
  935.  
  936. NAME
  937.       mth_LockMem - Lock a memory handle. (V1 Bravo)
  938.  
  939.  
  940. FUNCTION
  941.       Use this method to obtain the pointer to the memory.
  942.  
  943.  
  944. INPUTS
  945.       TagList -
  946.         BTA_MemHandle    - af[R]
  947.             The MemoryHandle supplied by the OBM_ALLOCMEM method.
  948.         BTA_MemBlock    - af[F]
  949.             When the method is finished this tag will hold the
  950.             pointer to the physical memory.
  951.  
  952.  
  953. SEE ALSO
  954.       mth_UnlockMem_BeastLibrary, mth_AllocMem_BeastLibrary,
  955.       mth_FreeMem_BeastLibrary
  956.  
  957.  
  958. BeastLibrary/mth_UnlockMem_BeastLibrary
  959.  
  960. NAME
  961.       mth_UnlockMem - Unlock a memory handle. (V1 Bravo)
  962.  
  963.  
  964. FUNCTION
  965.       Use this method to 'given' back your memory. After this method has
  966.       been called you MAY NOT use the memory. You must lock it first again.
  967.  
  968.  
  969. INPUTS
  970.       TagList -
  971.         BTA_MemHandle    - af[R]
  972.             The MemoryHandle supplied by the OBM_ALLOCMEM method.
  973.  
  974.  
  975. SEE ALSO
  976.       mth_LockMem_BeastLibrary, mth_AllocMem_BeastLibrary,
  977.       mth_FreeMem_BeastLibrary
  978.  
  979.  
  980.